<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="./js/vue.js"></script>
</head>

<body>

    <div id="app">
        <!-- 
            计算属性与方法的区别
           计算属性是基于它们的依赖进行缓存的
           方法不存在缓存
        -->
        <div>{{msg}}</div>
        <!-- computed调用了一次 -->
        <div>{{reversedMessage}}</div>
        <div>{{reversedMessage}}</div>
        <!-- reversedFun调用了两次 -->
        <div>{{reversedFun()}}</div>
        <div>{{reversedFun()}}</div>
    </div>

    <script lang="text/javascript">
        var vm = new Vue({
            el: "#app",
            data: {
                msg: 'hello',
            },
            methods: {
                reversedFun: function (msg) {
                    console.log("reversedFun")
                    // 计算属性是基于data中的数据
                    return this.msg.split('').reverse().join('');
                }
            }
            ,
            computed: {
                reversedMessage: function () {
                    console.log("computed")
                    // 计算属性是基于data中的数据
                    // 中间可能进行耗时的操作
                    return this.msg.split('').reverse().join('');
                },


            }

        })
    </script>

</body>

</html>